package com.iaz.tech.tools.property.impl;

import lombok.Data;
import java.lang.reflect.Type;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.iaz.tech.tools.property.IPropertyAble;

/**
 * 属性抽象类，用于记录属性
 */
@Data
public abstract class Property implements IPropertyAble {
	/**
     * 日志
     */
	private final static Logger logger = (Logger) LoggerFactory.getLogger(Property.class);
	
	/**
     * 属性名
     */
    private String name = "";
    /**
     * 路径
     */
    private String selfPath = "";
    /**
     * 路径
     */
    private String innerPath = "";
    
   
    /**
     * 属性的数据类型
     *
     */
    private Type propDataType = null;
    
    private String dataType = "";

    @Override
    public String path() {
        return this.selfPath;
    }

    @Override
    public Type dataType() {
        return this.propDataType;
    }
    
    @Override
    public void push(String key, Object _value) {
    	try {
	    	
    	} catch(Exception e) {
    		logger.error("出现异常：" + e.getMessage());
    	}
    }

	@Override
	public void push(String key, IPropertyAble property) {
		try {
		} catch(Exception e) {
    		logger.error("出现异常：" + e.getMessage());
    	}
	}
	
	@Override
	public void push(Object _value) {
		try {
		} catch(Exception e) {
    		logger.error("出现异常：" + e.getMessage());
    	}	
	}

	@Override
	public void push(IPropertyAble property) {
		try {
		} catch(Exception e) {
    		logger.error("出现异常：" + e.getMessage());
    	}
	}    
	
	/**
     * 填充
     * @param path
     * @param key
     * @param _value
     */
    public void push(String path, String key,  Object _value) {}
    /**
     * 填充对象Property
     * @param path
     * @param key
     * @param property
     */
    public void push(String path, String key, IPropertyAble property) {}
}
